#define _CRT_SECURE_NO_WARNINGS

//#include <stdio.h>
//#include <stdlib.h>

//void Print_hard_version(int* a, int numsSize)
//{
//	for (int i = 0; i < numsSize; i++)
//	{
//		int count = 0;
//		for (int j = 0; j < numsSize; j++)
//		{
//			if (j == i || a[j] > a[i])
//				continue;
//
//			int num_i = a[i];
//			if (num_i == (a[i] | a[j]))
//				count++;
//		}
//
//		printf("%d\n", count);
//	}
//}
//
//int main()
//{
//	int n = 0;
//	scanf("%d ", &n);
//	int* a = (int*)malloc(sizeof(int) * n);
//
//	for (int i = 0; i < n; i++)
//		scanf("%d", &a[i]);
//
//	Print_hard_version(a, n);
//
//	free(a);
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	int n = 0;
//	int count = 0;
//	scanf("%d", &n);
//	for (int i = 1; i <= n; i++)
//	{
//		count = 0;
//		for (int j = 0; j < 32; j++)
//		{
//			if ((i >> j) & 1 == 1)
//				count++;
//		}
//		printf("%d\n", (1 << count) - 1);
//	}
//	return 0;
//}

//#include <stdio.h>
//#include <stdlib.h>
//
//int main()
//{
//	int n, m;
//	scanf("%d%d", &n, &m);
//
//	char** dask = (char**)malloc(sizeof(char*) * n);
//	for (int i = 0; i < n; i++)
//	{
//		dask[i] = (char*)malloc(sizeof(char) * m);
//	}
//
//	int count = 0;
//	for (int i = 0; i < n; i++)
//	{
//		getchar();
//		for (int j = 0; j < m; j++)
//		{
//			scanf("%c", &dask[i][j]);
//
//			if (dask[i][j] == '#')
//				count++;
//		}
//	}
//
//	for (int i = 0; i < m; i++)
//	{
//		for (int j = 0; j < n; j++)
//		{
//			if ((count--) > 0)
//				dask[j][i] = '#';
//			else
//				dask[j][i] = '*';
//		}
//	}
//
//	for (int i = 0; i < n; i++)
//	{
//		for (int j = 0; j < m; j++)
//			printf("%c", dask[i][j]);
//
//		printf("\n");
//	}
//
//	for (int i = 0; i < n; i++)
//		free(dask[i]);
//	free(dask);
//
//	return 0;
//}
#include <stdio.h>
#include <stdlib.h>

int main()
{
	int n, m;
	scanf("%d %d", &n, &m);

	char** dask = (char**)malloc(sizeof(char*) * n);
	for (int i = 0; i < n; i++)
	{
		dask[i] = (char*)malloc(sizeof(char) * m);
	}

	int count = 0;
	for (int i = 0; i < n; i++)
	{
		getchar();
		for (int j = 0; j < m; j++)
		{
			scanf("%c", &dask[i][j]);

			if (dask[i][j] == '#')
				count++;
		}
	}

	if (count == 0 || count == n * m)
		goto out;

	for (int i = 0; i < m; i++)
	{
		for (int j = 0; j < n; j++)
		{
			if ((count--) > 0)
				dask[j][i] = '#';
			else
				dask[j][i] = '*';
		}
	}

out:
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < m; j++)
			printf("%c", dask[i][j]);

		printf("\n");
	}

	for (int i = 0; i < n; i++)
		free(dask[i]);
	free(dask);

	return 0;
}

